Ansible Vault হলো একটি নিরাপত্তা ফিচার যা সংবেদনশীল ডেটা, যেমন পাসওয়ার্ড, API টোকেন, কনফিগারেশন সেটিংস বা অন্য কোন গোপনীয় তথ্য এনক্রিপ্ট এবং ডিক্রিপ্ট করতে ব্যবহৃত হয়। এটি মূলত প্লেবুক, ইনভেন্টরি, বা ভ্যারিয়েবলে সংরক্ষিত সংবেদনশীল ডেটা নিরাপদ রাখতে সহায়তা করে। Ansible Vault ব্যবহার করলে আপনি নিশ্চিত থাকতে পারেন যে আপনার সংবেদনশীল তথ্যগুলো শুধুমাত্র অথোরাইজড ব্যক্তি বা সিস্টেমই অ্যাক্সেস করতে পারবে।
Ansible Vault ব্যবহার করে একটি ফাইল এনক্রিপ্ট এবং ডিক্রিপ্ট করার জন্য নিচের কমান্ডগুলো ব্যবহার করা হয়।
ansible-vault create secrets.yml
secrets.yml
তৈরি করবে এবং পাসওয়ার্ড চাইবে।db_password: my_secret_password
api_key: abc123xyz
আপনার যদি আগে থেকে একটি ফাইল থাকে এবং আপনি সেটি এনক্রিপ্ট করতে চান, তাহলে:
ansible-vault encrypt existing_file.yml
ফাইলটি আবার সাধারণ টেক্সটে নিয়ে আসতে:
ansible-vault decrypt secrets.yml
কোনো এনক্রিপ্টেড ফাইল সম্পাদনা করতে:
ansible-vault edit secrets.yml
ফাইলের কনটেন্ট দেখতে হলে:
ansible-vault view secrets.yml
Ansible প্লেবুকে Vault ব্যবহার করার জন্য আপনাকে --ask-vault-pass
ফ্ল্যাগ ব্যবহার করতে হবে:
ansible-playbook playbook.yml --ask-vault-pass
এটি প্লেবুক রান করার সময় পাসওয়ার্ড চাইবে এবং সেই পাসওয়ার্ড ব্যবহার করে Vault ডেটা ডিক্রিপ্ট করে প্লেবুকে ব্যবহার করবে।
প্রতি বার পাসওয়ার্ড টাইপ করা বিরক্তিকর হতে পারে। আপনি একটি পাসওয়ার্ড ফাইল ব্যবহার করতে পারেন:
vault_password.txt
এবং তাতে আপনার পাসওয়ার্ড লিখুন।ansible-playbook playbook.yml --vault-password-file vault_password.txt
সতর্কতা: নিশ্চিত করুন যে পাসওয়ার্ড ফাইলটি সুরক্ষিত এবং এটি শুধুমাত্র অথোরাইজড ব্যক্তিরাই অ্যাক্সেস করতে পারে। সাধারণত, এটি .gitignore
এ যোগ করা উচিত যাতে এটি গিট রেপোজিটরিতে সংরক্ষণ না হয়।
Ansible 2.4 থেকে Vault ID ফিচার যোগ করা হয়েছে, যা একাধিক পাসওয়ার্ড এবং Vault ফাইল ম্যানেজ করতে সহায়তা করে। এটি বড় প্রজেক্ট বা বড় টিমের ক্ষেত্রে অত্যন্ত উপকারী, কারণ আপনি বিভিন্ন Vault ID ব্যবহার করে বিভিন্ন পাসওয়ার্ড সেট করতে পারেন।
ansible-vault encrypt --vault-id dev@prompt secrets_dev.yml
ansible-vault encrypt --vault-id prod@prompt secrets_prod.yml
প্লেবুক রান করার সময়:
ansible-playbook playbook.yml --vault-id dev@prompt --vault-id prod@prompt
.gitignore
ব্যবহার করুন।Ansible Vault একটি শক্তিশালী ফিচার যা আপনাকে সংবেদনশীল ডেটা এনক্রিপ্ট করে সুরক্ষিত রাখতে এবং প্রয়োজন অনুসারে ব্যবহার করতে সাহায্য করে। এটি ব্যবহার করলে আপনার প্লেবুক ও কনফিগারেশন আরও সুরক্ষিত এবং পেশাদার হয়।
Ansible Vault হলো একটি টুল, যা সংবেদনশীল তথ্য (যেমন পাসওয়ার্ড, API কি, কনফিগারেশন ফাইল, SSH কী) এনক্রিপ্ট এবং সংরক্ষণ করতে ব্যবহৃত হয়। এটি প্লেবুক এবং কনফিগারেশন ফাইলে সংবেদনশীল ডাটা নিরাপদ রাখার একটি পদ্ধতি। Ansible Vault ব্যবহার করে আপনি এসব তথ্য এনক্রিপ্ট করে রাখতে পারেন এবং শুধুমাত্র অনুমোদিত ইউজাররাই সেগুলো ডিক্রিপ্ট করতে পারে।
Ansible Vault মূলত প্লেবুকে সংবেদনশীল তথ্য নিরাপদে সংরক্ষণ এবং ব্যবহার করার জন্য প্রয়োজন। নিচে Vault-এর প্রয়োজনীয়তা এবং সুবিধাগুলো ব্যাখ্যা করা হলো:
সংবেদনশীল তথ্য সুরক্ষা: প্লেবুকে সংবেদনশীল ডাটা যেমন পাসওয়ার্ড, টোকেন, API কি বা অন্যান্য কনফিগারেশন ডাটা সংরক্ষণ করতে হয়, যা সিকিউরিটির জন্য এনক্রিপ্ট করা প্রয়োজন। Vault এই তথ্যগুলো এনক্রিপ্ট করে, যাতে এগুলো অননুমোদিত অ্যাক্সেস থেকে সুরক্ষিত থাকে।
কোড এবং ডাটা সেপারেশন: অনেকে কোড এবং কনফিগারেশন ডাটা আলাদা রাখতে চায়, কিন্তু প্লেবুকের সাথে সংবেদনশীল তথ্য রাখতে হলে Vault ব্যবহার করে এনক্রিপ্ট করা যায়। এটি কোডবেস এবং কনফিগারেশনের মধ্যে নিরাপত্তা বজায় রাখে।
এনক্রিপ্টেড ফাইল: Ansible Vault ব্যবহার করে YAML ফাইলগুলো (যেমন ভ্যারিয়েবল ফাইল, হোস্ট ভ্যারিয়েবল ফাইল) এনক্রিপ্ট করা যায়। এটি নিশ্চিত করে যে সংবেদনশীল তথ্য কোডবেসে থাকলেও তা শুধুমাত্র অনুমোদিত ব্যবহারকারীরা দেখতে বা পরিবর্তন করতে পারবে।
সহজ ব্যবহার: Vault একটি সহজ কমান্ড-লাইন টুল যা Ansible-এর সাথে ইন্টিগ্রেট করা। এটি প্লেবুক বা ভ্যারিয়েবল ফাইলকে সরাসরি এনক্রিপ্ট এবং ডিক্রিপ্ট করতে সাহায্য করে, এবং প্লেবুক রান করার সময় পাসওয়ার্ড ব্যবহার করে ডাটা ডিক্রিপ্ট করা যায়।
Vault ব্যবহার করে একটি নতুন ফাইল তৈরি করতে নিচের কমান্ড ব্যবহার করা হয়:
ansible-vault create secrets.yml
এই কমান্ডটি একটি নতুন ফাইল তৈরি করবে এবং এটি এনক্রিপ্ট করার জন্য একটি পাসওয়ার্ড চাবে। পাসওয়ার্ড দিয়ে ফাইলটি এনক্রিপ্ট করা হবে এবং এরপর আপনি ফাইলের ভেতরে সংবেদনশীল ডাটা লিখতে পারবেন।
ansible-vault edit secrets.yml
Vault এডিট করার জন্য এই কমান্ডটি ব্যবহার করা হয়। এটি এনক্রিপ্ট করা ফাইলটি ডিক্রিপ্ট করে এডিটর খুলে দেয়, যেখানে আপনি তথ্য পরিবর্তন করতে পারবেন। এডিট করা শেষ হলে ফাইলটি আবার এনক্রিপ্ট করা হয়।
ansible-vault view secrets.yml
এই কমান্ডটি ব্যবহার করে আপনি এনক্রিপ্ট করা ফাইলটি দেখতে পারবেন, কিন্তু কোনো পরিবর্তন করতে পারবেন না।
ansible-vault decrypt secrets.yml
এই কমান্ডটি একটি Vault ফাইলকে ডিক্রিপ্ট করে, যাতে এটি সাধারণ টেক্সট ফাইলে পরিণত হয়।
ansible-vault encrypt secrets.yml
যদি আপনি একটি সাধারণ YAML ফাইল এনক্রিপ্ট করতে চান, তাহলে এই কমান্ডটি ব্যবহার করতে পারেন।
ansible-playbook playbook.yml --ask-vault-pass
এই কমান্ডটি প্লেবুক রান করার সময় Vault পাসওয়ার্ড চায়, যাতে প্লেবুকের সাথে সংযুক্ত এনক্রিপ্টেড ফাইল ডিক্রিপ্ট করা যায়।
Ansible Vault ব্যবহার করে প্লেবুকের নিরাপত্তা এবং ডাটা প্রাইভেসি বজায় রাখা যায়, যা বিশেষ করে বড় প্রজেক্ট এবং জটিল ইনফ্রাস্ট্রাকচারের ক্ষেত্রে অত্যন্ত গুরুত্বপূর্ণ।
Ansible Vault হলো Ansible এর একটি বৈশিষ্ট্য যা আপনাকে গোপন তথ্য যেমন পাসওয়ার্ড, API কী, এবং অন্যান্য সংবেদনশীল তথ্য নিরাপদে সংরক্ষণ করতে দেয়। এখানে আমরা Ansible Vault এর মাধ্যমে গোপন তথ্য সংরক্ষণ করার পদ্ধতি আলোচনা করব।
প্রথমে নিশ্চিত করুন যে আপনার সিস্টেমে Ansible ইনস্টল করা আছে। আপনি নীচের কমান্ডটি ব্যবহার করে Ansible ইনস্টল করতে পারেন:
sudo apt-get install ansible
এখন আপনি একটি নতুন ভল্ট ফাইল তৈরি করতে পারেন যেখানে আপনি গোপন তথ্য সংরক্ষণ করবেন। উদাহরণস্বরূপ, একটি YAML ফাইল তৈরি করুন:
ansible-vault create secrets.yml
এই কমান্ডটি একটি নতুন ফাইল তৈরি করবে এবং আপনাকে একটি পাসওয়ার্ড প্রদান করতে বলবে। এরপর, ফাইলটি খুলবে যেখানে আপনি আপনার গোপন তথ্য লিখতে পারেন।
# secrets.yml
db_password: mysecretpassword
api_key: myapikey
ফাইলটি সংরক্ষণ করে বন্ধ করুন।
যদি আপনি পূর্বে তৈরি করা ভল্ট ফাইল সম্পাদনা করতে চান, তাহলে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
ansible-vault edit secrets.yml
যদি আপনি গোপন তথ্য দেখতে চান, তাহলে ব্যবহার করুন:
ansible-vault view secrets.yml
আপনার গোপন তথ্যগুলো ব্যবহার করতে, আপনি এটি একটি Playbook এ অন্তর্ভুক্ত করতে পারেন:
- hosts: all
tasks:
- name: Print secret variables
debug:
msg: "Database password is {{ db_password }} and API key is {{ api_key }}"
vars_files:
- secrets.yml
আপনি যখন vault ফাইলগুলো রান করবেন, তখন আপনাকে পাসওয়ার্ড প্রদান করতে হবে। আপনি পাসওয়ার্ড ইনপুট করার জন্য একটি ফাইল ব্যবহার করতে পারেন:
ansible-playbook playbook.yml --vault-password-file ~/.vault_pass.txt
আপনি একটি সাধারণ ফাইলকে এনক্রিপ্ট করতে পারেন:
ansible-vault encrypt filename.yml
এনক্রিপ্ট করা ফাইল থেকে এনক্রিপশন মুক্ত করতে:
ansible-vault decrypt filename.yml
Ansible Vault আপনার গোপন তথ্যের নিরাপত্তা নিশ্চিত করতে সহায়ক। এই পদ্ধতিগুলি ব্যবহার করে আপনি আপনার সংবেদনশীল তথ্য নিরাপদে সংরক্ষণ করতে পারেন এবং প্রয়োজনে সেগুলি ব্যবহার করতে পারেন।
Ansible Vault ব্যবহার করে সংবেদনশীল তথ্য নিরাপদে সংরক্ষণ করা হয় এবং যখন প্রয়োজন হয় তখন তা ডিক্রিপ্ট করে ব্যবহৃত হয়। Vault ফাইল ডিক্রিপ্ট এবং ব্যবস্থাপনা একটি গুরুত্বপূর্ণ কাজ, যা নিরাপত্তা বজায় রাখতে সাহায্য করে। চলুন দেখি কিভাবে Vault ফাইল ডিক্রিপ্ট এবং পরিচালনা করা যায়।
একটি এনক্রিপ্ট করা Vault ফাইল ডিক্রিপ্ট করতে নিচের কমান্ড ব্যবহার করুন:
ansible-vault decrypt <vault_file>
উদাহরণ:
ansible-vault decrypt secrets.yml
এই কমান্ডটি ফাইলটিকে ডিক্রিপ্ট করবে এবং ক্লিয়ার টেক্সট হিসেবে ফাইলের কনটেন্ট দেখতে পারবেন। আপনি এটি সম্পাদনা করতে পারেন, এবং পরে আবার এনক্রিপ্ট করতে পারেন।
যখন আপনি ফাইলটি ডিক্রিপ্ট করবেন, তখন আপনাকে Vault পাসওয়ার্ড প্রদান করতে হবে। এটি আপনি আপনার আগের সময় তৈরি করা পাসওয়ার্ডটি প্রদান করবেন।
একটি এনক্রিপ্ট করা Vault ফাইল সম্পাদনা করতে নিচের কমান্ডটি ব্যবহার করুন:
ansible-vault edit <vault_file>
উদাহরণ:
ansible-vault edit secrets.yml
এই কমান্ডটি ফাইলটিকে ডিক্রিপ্ট করে একটি এডিটর খুলবে (যেমন vi
বা nano
) এবং আপনি সেখানে পরিবর্তন করতে পারবেন। সম্পন্ন করার পর এটি আবার এনক্রিপ্ট করে সংরক্ষণ করবে।
একটি এনক্রিপ্ট করা Vault ফাইলের কনটেন্ট দেখতে নিচের কমান্ড ব্যবহার করুন:
ansible-vault view <vault_file>
উদাহরণ:
ansible-vault view secrets.yml
এই কমান্ডটি ফাইলটিকে ডিক্রিপ্ট করে শুধুমাত্র দেখাবে, কিন্তু এটি পরিবর্তন করবে না।
প্রতি বার পাসওয়ার্ড টাইপ করা বিরক্তিকর হতে পারে। আপনি একটি পাসওয়ার্ড ফাইল ব্যবহার করতে পারেন:
vault_password.txt
, এবং তাতে আপনার পাসওয়ার্ড লিখুন।ansible-vault decrypt <vault_file> --vault-password-file vault_password.txt
যদি আপনার একাধিক Vault ফাইল থাকে এবং প্রতিটির জন্য ভিন্ন ভিন্ন পাসওয়ার্ড থাকে, তাহলে আপনি Vault ID ব্যবহার করতে পারেন।
ansible-vault encrypt --vault-id dev@prompt secrets_dev.yml
ansible-vault encrypt --vault-id prod@prompt secrets_prod.yml
ansible-playbook playbook.yml --vault-id dev@prompt --vault-id prod@prompt
.gitignore
ফাইলে অন্তর্ভুক্ত করুন।chmod 600 vault_password.txt
Ansible Vault ফাইল ডিক্রিপ্ট এবং ব্যবস্থাপনা নিরাপত্তার জন্য অত্যন্ত গুরুত্বপূর্ণ। উপরের কমান্ডগুলো ব্যবহার করে আপনি Vault ফাইল ডিক্রিপ্ট করতে, সম্পাদনা করতে, এবং নিরাপত্তা নিশ্চিত করতে পারবেন। Vault পাসওয়ার্ড ফাইল এবং Vault ID ব্যবহার করে আপনি এই প্রক্রিয়াগুলোকে আরও সহজ এবং কার্যকর করতে পারেন।